import chalk from "chalk";
import { mind } from "gradient-string";

import { getVersion } from "./version.js";

const d = chalk.dim;

export const CONTINUE_ASCII_ART = `
${mind.multiline(`  ██████╗ ██████╗ ███╗   ██╗████████╗██╗███╗   ██╗██╗   ██╗███████╗
 ██╔════╝██╔═══██╗████╗  ██║╚══██╔══╝██║████╗  ██║██║   ██║██╔════╝
 ██║     ██║   ██║██╔██╗ ██║   ██║   ██║██╔██╗ ██║██║   ██║█████╗
 ██║     ██║   ██║██║╚██╗██║   ██║   ██║██║╚██╗██║██║   ██║██╔══╝
 ╚██████╗╚██████╔╝██║ ╚████║   ██║   ██║██║ ╚████║╚██████╔╝███████╗
  ╚═════╝ ╚═════╝ ╚═╝  ╚═══╝   ╚═╝   ╚═╝╚═╝  ╚═══╝ ╚═════╝ ╚══════╝`)}
                                                    ${d("v" + getVersion())}`;

// ASCII art for just "CN" (first two letters)
const CN_ASCII_ART = `
${mind.multiline(`  ██████╗███╗   ██╗
 ██╔════╝████╗  ██║
 ██║     ██╔██╗ ██║
 ██║     ██║╚██╗██║
 ╚██████╗██║ ╚████║
  ╚═════╝╚═╝  ╚═══╝`)}
  ${d("v" + getVersion())}`;

// Minimum terminal width required to display ASCII art properly
const MIN_WIDTH_FOR_ASCII_ART = 75;

/**
 * Returns the ASCII art only if the terminal is wide enough to display it properly.
 * If terminal is too narrow, returns just the version string.
 */
export function getDisplayableAsciiArt(): string {
  const terminalWidth = process.stdout.columns || 80;

  if (terminalWidth >= MIN_WIDTH_FOR_ASCII_ART) {
    return CONTINUE_ASCII_ART;
  }

  // If terminal is too narrow, show just "CN" ASCII art
  return CN_ASCII_ART;
}

export const CONTINUE_LOGO_ASCII_ART = `
                   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  @@
                 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  @@@@
               @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  @@@@@@
              @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@
             @@@@@@@@@@@@                              @@@@@@@@@@@@
            @@@@@@@@@@@@    @@@@@@@@@@@@@@@@@@@@@@@@@@  @@@@@@@@@@  @@@@@@@@@@@@
           @@@@@@@@@@@@  @@  @@@@@@@@@@@@@@@@@@@@@@@@@@  @@@@@@@@  @@@@@@@@@@@   @
          @@@@@@@@@@@@  @@@@  @@@@@@@@@@@@@@@@@@@@@@@@@@  @@@@@@  @@@@@@@@@@@  @@@@
         @@@@@@@@@@@@  @@@@@@  @@@@@@@@@@@@@@@@@@@@@@@@@@  @@@@  @@@@@@@@@@@  @@@@@@@
        @@@@@@@@@@@@  @@@@@@@@  @@@@@@@@@@@@@@@@@@@@@@@@@@  @@ @@@@@@@@@@@@  @@@@@@@@@
       @@@@@@@@@@@@  @@@@@@@@@@  @@@@@@@@@@@@@@@@@@@@@@@@@@    @@@@@@@@@@@  @@@@@@@@@@@
      @@@@@@@@@@@@  @@@@@@@@@@@                                             @@@@@@@@@@@@
     @@@@@@@@@@@@  @@@@@@@@@@@                                 @@@@@@@@@@@@  @@@@@@@@@@@@
    @@@@@@@@@@@@  @@@@@@@@@@@                                   @@@@@@@@@@@@  @@@@@@@@@@@@
   @@@@@@@@@@@   @@@@@@@@@@@                                     @@@@@@@@@@@@  @@@@@@@@@@@@
  @@@@@@@@@@@  @@@@@@@@@@@@                                       @@@@@@@@@@@@  @@@@@@@@@@@@
 @@@@@@@@@@@  @@@@@@@@@@@@                                         @@@@@@@@@@@@  @@@@@@@@@@@@
@@@@@@@@@@@  @@@@@@@@@@@@                                           @@@@@@@@@@@@  @@@@@@@@@@@@
             @@@@@@@@@@@                                              @@@@@@@@@@@  @@@@@@@@@@@@
@@@@@@@@@@@@  @@@@@@@@@                                                @@@@@@@@@@@  @@@@@@@@@@@@
 @@@@@@@@@@@@  @@@@@@@                                                  @@@@@@@@@@@@ @@@@@@@@@@@@
  @@@@@@@@@@@@  @@@@@                                                    @@@@@@@@@@@@ @@@@@@@@@@@@
    @@@@@@@@@@@  @@@                                                      @@@@@@@@@@@@  @@@@@@@@@@@
     @@@@@@@@@@@                                                           @@@@@@@@@@@@  @@@@@@@@@@@
                                          CONTINUE                                       @@@@@@@@@@@@
     @@@@@@@@@@@                                                           @@@@@@@@@@@@  @@@@@@@@@@@
   @@@@@@@@@@@@  @@@                                                      @@@@@@@@@@@@  @@@@@@@@@@@
  @@@@@@@@@@@@  @@@@@                                                    @@@@@@@@@@@@ @@@@@@@@@@@@
 @@@@@@@@@@@@  @@@@@@@                                                  @@@@@@@@@@@  @@@@@@@@@@@@
@@@@@@@@@@@@  @@@@@@@@@                                                @@@@@@@@@@@  @@@@@@@@@@@@
             @@@@@@@@@@@                                              @@@@@@@@@@@  @@@@@@@@@@@@
@@@@@@@@@@@  @@@@@@@@@@@@                                           @@@@@@@@@@@@  @@@@@@@@@@@@
 @@@@@@@@@@@  @@@@@@@@@@@@                                         @@@@@@@@@@@@  @@@@@@@@@@@@
  @@@@@@@@@@@@ @@@@@@@@@@@@                                       @@@@@@@@@@@@  @@@@@@@@@@@@
   @@@@@@@@@@@   @@@@@@@@@@@                                     @@@@@@@@@@@@  @@@@@@@@@@@@
    @@@@@@@@@@@@  @@@@@@@@@@@                                   @@@@@@@@@@@@  @@@@@@@@@@@@
     @@@@@@@@@@@@  @@@@@@@@@@@                                 @@@@@@@@@@@@  @@@@@@@@@@@@
      @@@@@@@@@@@@  @@@@@@@@@@@@                                            @@@@@@@@@@@@
       @@@@@@@@@@@@  @@@@@@@@@@  @@@@@@@@@@@@@@@@@@@@@@@@@@    @@@@@@@@@@@  @@@@@@@@@@@
        @@@@@@@@@@@@  @@@@@@@@  @@@@@@@@@@@@@@@@@@@@@@@@@@  @@ @@@@@@@@@@@@  @@@@@@@@@
         @@@@@@@@@@@@  @@@@@@  @@@@@@@@@@@@@@@@@@@@@@@@@@  @@@@  @@@@@@@@@@@  @@@@@@
          @@@@@@@@@@@@  @@@@  @@@@@@@@@@@@@@@@@@@@@@@@@@  @@@@@@  @@@@@@@@@@@  @@@@
           @@@@@@@@@@@@  @@  @@@@@@@@@@@@@@@@@@@@@@@@@@  @@@@@@@@  @@@@@@@@@@@   @
            @@@@@@@@@@@@    @@@@@@@@@@@@@@@@@@@@@@@@@@  @@@@@@@@@@  @@@@@@@@@@@
             @@@@@@@@@@@@                              @@@@@@@@@@@@
              @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@
               @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  @@@@@@
                 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  @@@@
                  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  @@
                   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
`;
